package com.xiao.service.impl;

import com.xiao.domain.ResponseResult;
import com.xiao.service.OssUploadService;
import com.xiao.utils.FileUtil;
import com.xiao.utils.OssUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

@Service
public class OssUploadServiceImpl implements OssUploadService {
    @Autowired
    OssUtils ossUtils;
    String prefix ="blog/";// 上传的路径前缀

    @Override
    public ResponseResult uploadImg(MultipartFile img) {// MultipartFile 应该是表单的一个类型因此我们直接用类型接受。
        // 判断文件类型
        // 获取原始文件名
        String filename = img.getOriginalFilename();
        // 利用 uuid 生成文件名
        String uuidFilename = FileUtil.generateFileName(filename);

        /**
         * 获取登入用户ID 作为该用户的文件夹 【由于 /upload 前端来的请求没有携带 token 无法从 securityContext 中获取用户信息 以后再考虑】
         * Long userId = 10L;
          */

        // 上传到对应用户的文件夹中
        String upLoadObjectName = prefix /*+ userId */+ uuidFilename;
        String url = ossUtils.upload(img, upLoadObjectName);

        return ResponseResult.okResult(url);
    }

}